package Transferencia;

public class Banco {
	public void transferir(Cliente CltA, Cliente CltB, float monto){
		try {
			CltA.extraer(monto);
		} catch (SinFondosException e) {
			System.out.println(e.getMessage());
		}
		try {
			CltB.depositar(monto);
		} catch (SuperaMaximoException e) {
			System.out.println(e.getMessage());
		}
	}
	
	public static void main(String [] args){
		Banco b = new Banco();
		Cliente cltA, cltB;
		float transferir = 0;
		
		//Caso prueba 1
		System.out.println("Caso de prueba A:");
		cltA = new Cliente(100);
		cltB = new Cliente(100);
		System.out.println("Inicial A: " + cltA.getDisponible());
		System.out.println("Inicial B: " + cltB.getDisponible());
		transferir = 50;
		System.out.println("Se intentan transferir " + transferir + " pesos");
		b.transferir(cltA, cltB, transferir);
		System.out.println("Final A: " + cltA.getDisponible());
		System.out.println("Final B: " + cltB.getDisponible());
		System.out.println("-------------------------------------");
		
		//Caso prueba 2
		System.out.println("Caso de prueba 2:");
		cltA = new Cliente(100);
		cltB = new Cliente(5000);
		System.out.println("Inicial A: " + cltA.getDisponible());
		System.out.println("Inicial B: " + cltB.getDisponible());
		transferir = 60;
		System.out.println("Se intentan transferir " + transferir + " pesos");
		b.transferir(cltA, cltB, transferir);
		System.out.println("Final A: " + cltA.getDisponible());
		System.out.println("Final B: " + cltB.getDisponible());
		System.out.println("Observar el error en el manejo de excepciones para este caso de prueba");
		System.out.println("-------------------------------------");
		
		//Caso prueba 3
		System.out.println("Caso de prueba 3:");
		cltA = new Cliente(100);
		cltB = new Cliente(200);
		System.out.println("Inicial A: " + cltA.getDisponible());
		System.out.println("Inicial B: " + cltB.getDisponible());
		transferir = 150;
		System.out.println("Se intentan transferir " + transferir + " pesos");
		b.transferir(cltA, cltB, transferir);
		System.out.println("Final A: " + cltA.getDisponible());
		System.out.println("Final B: " + cltB.getDisponible());
		System.out.println("Observar el error en el manejo de excepciones para este caso de prueba");
		System.out.println("-------------------------------------");
		
	}
}
